package com.woniuxy.movice.service;

import java.util.List;

import com.woniuxy.movice.dto.OrderInfo;
import com.woniuxy.movice.dto.Page;
import com.woniuxy.movice.entity.Orders;
import com.woniuxy.movice.entity.Users;
import com.woniuxy.movice.exception.OrderException;
import com.woniuxy.movice.pojo.Order;


public interface OrderService {

	/**
	 *  1.session 为空抛出异常
	 * 	2.通过sessionId在redis查找用户信息（uid，vid，ustate）
	 * 	a)若ustate为1，抛出异常
	 * 	b)根据vid获取用户会员折扣
	 * 	3.根据round.price获取该场次价格
	 * 	4.通过selectSets获取已选座位信息,计算总价（优惠券如何处理？）
	 * 	5.数据库创建订单明细和订单，
	 * 	6.redis更新该场次座位信息
	 * 	7.返回订单id
	 * @param roundId
	 * @param selectSets
	 * @param user
	 * @return 
	 */
	Orders creatOrder(Integer roundId, String selectSets, Users user);

	/**
	 * 查询所有订单
	 * @param uid
	 * @param page
	 * @param size
	 * @param state 
	 * @return
	 */
	Page<Order> finAllOrder(Integer uid, Integer page, Integer size, Integer state);

	
	/**
	 * 查询订单信息
	 * @param id
	 * @return
	 */
	Order findOrderByID(Integer id)  throws OrderException;
	
	
	/**
	 * 更新订单状态
	 * @param order
	 * @return
	 */
	int updateOrderByOnum(Orders order);

	
	void updateRefund(String onumber, int i);

	List<OrderInfo> showOrder(int uid);

	String findOrderStateByOstate(Integer ostate);



	/**
	 * 取票
	 * @param account
	 * @param orderId
	 * @return
	 */
	boolean takeTicket(String account, String orderId);

	int delOrderByOid(int oid);

}
